// 1. 引入自定义的Dog模块
const Dog = require('./dog');

/**
 * 初始化狗的实例并启动吠叫逻辑
 * @param {string} name - 狗的名字
 * @param {number} energy - 初始精力值
 */
function initDog(name, energy) {
  // 实例化Dog对象
  const dog = new Dog(name, energy);

  // 2. 定义定时器：每隔1秒触发一次吠叫逻辑
  const barkTimer = setInterval(() => {
    // 若精力值>0，触发"bark"事件并输出信息
    if (dog.energy > 0) {
      console.log(`${dog.name} barked! energy: ${dog.energy}`);
      dog.energy--; // 精力值减1
    } else {
      // 精力值为0，清除定时器，停止吠叫
      clearInterval(barkTimer);
      // 可额外触发"stopBark"事件（可选，用于扩展）
      dog.emit('stopBark', `${dog.name} has no energy to bark!`);
    }
  }, 1000); // 1000毫秒 = 1秒

  // 3. 监听"stopBark"事件（可选，用于显示停止提示）
  dog.on('stopBark', (msg) => {
    console.log(msg);
  });
}

// 4. 实例化两只狗并启动（对应实验效果中的taidi和zangao）
initDog('taidi', 5);  // 初始精力5，吠叫5次后停止
initDog('zangao', 9); // 初始精力9，吠叫9次后停止